package main

import (
	"context"
	"fmt"
	"google.golang.org/grpc"
	"grpc-test/pb"
	"net"
)

// 生成服务器实例(自定义server实现生成的server)
type Server struct {
	pb.UnimplementedGreeterServer
}

// SayHello 将grpc接口绑定程序方法(借助接口实现，接口必须是grpc接口中注册了的)
// 方法在proto文件中定义了
func (s *Server) SayHello(context.Context, *pb.HelloRequest) (*pb.HelloReply, error) {
	return &pb.HelloReply{Message: "conect server successful"}, nil
}

// 运行服务
func main() {
	//基于tcp实现
	listen, err := net.Listen("tcp", ":1099")
	if err != nil {
		fmt.Println("failed to listen", err)
	}
	//创建grpc服务
	server := grpc.NewServer()
	//注册自定义方法
	pb.RegisterGreeterServer(server, &Server{})
	//启动服务
	err = server.Serve(listen)
	if err != nil {
		fmt.Println("failed to serve", err)
		return
	}
}
